/* Database.java
 *
 * Copyright 2011 Aleksey Konovalov
 * All Rights Reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>. 
 * 
 */

package org.jimm.db;

import android.net.Uri;
import android.provider.BaseColumns;

/**
 * Синглтон для работы с БД
 * 
 * @author Алексей Коновалов (aleks_dsp)
 * 
 */
public final class ChattyDatabase {

	public static final String AUTHORITY = "ru.ak.database.chattydatabase";

	/**
	 * Таблица Accounts
	 */
	public static final class Accounts implements BaseColumns {

		private Accounts() {
		}

		public static final Uri CONTENT_URI = Uri.parse("content://"
				+ AUTHORITY + "/accounts");
		
		/**
		 * Идентификатор аккаунта (логин) 
		 */
		public static final String LOGIN = "login";
		
		/**
		 * Пароль
		 */
		public static final String PASSWORD = "password";
		
		/**
		 * Адрес сервера
		 */
		public static final String HOST = "host";
		
		/**
		 * Порт сервера
		 */
		public static final String PORT = "port";
		
		/**
		 * Тип аккаунта (ICQ, Jabber и т.д)
		 * 1 - ICQ
		 */
		public static final String TYPE = "type";
		
		// Константы, одна из которых может содержаться в поле TYPE
		public static final int TYPE_ICQ = 1;
		public static final int TYPE_JABBER = 2;
		
		/**
		 * Различные опции соединения
		 */
		public static final String FLAGS = "flags";
		
		/**
		 * Флаг "аккаунт отключен" - не использовать этот аккаунт
		 */
		public static final int FLAG_DISABLED = 1;
	}
	
	public static final class History {

		private History() {
		}

		public static final Uri CONTENT_URI = Uri.parse("content://"
				+ AUTHORITY + "/history");

		/**
		 * Поле связи с таблицей contacts
		 */
		public static final String CONTACT = "contact";
		
		/**
		 * Дата получения/отправки сообщения
		 */
		public static final String DATE = "date";
		
		/**
		 * Тест сообщения
		 */
		public static final String MESSAGE = "message";
		
		/**
		 * Флаги
		 */
		public static final String FLAGS = "flags";
		
		/**
		 * Принятое сообщение
		 */
		public static final int FLAG_RECEIVED_MESSAGE = 1;
	}
	
	// Контакты
	public static final class Contacts implements BaseColumns {
		
		private Contacts() {
		}
		
		public static final Uri CONTENT_URI = Uri.parse("content://"
				+ AUTHORITY + "/contacts");

		/**
		 * аккаунт, которому пренадлежит контакт
		 */
		public static final String ACCOUNT = "account";
		
		/**
		 * идентификатор контакта
		 */
		public static final String CONTACT_ID = "contact_id";
		
		/**
		 * Ник контакта
		 */
		public static final String NICK = "nick";
		
		/**
		 * Связь с таблицей Groups
		 */
		public static final String GROUP = "groupId";
	}
	
	// Группы контактов
	public static final class Groups implements BaseColumns {

		private Groups() {
		}
		
		public static final Uri CONTENT_URI = Uri.parse("content://"
				+ AUTHORITY + "/groups");

		public static final String NAME = "name";

	}
}
